1. Field of the Invention
The present invention relates generally to signal measurement systems and, more particularly, to managing a large number of acquired pulses in a signal measurement system.
2. Related Art
Conventional signal measurement systems such as digital oscilloscopes sample, record and display time-varying analog signals. Samples of an input signal are taken and quantified, and the resultant digital representations are stored in an acquisition memory under the control of a sampling clock. The acquired signal data may be subsequently retrieved as locations in memory are read out to provide digital data that can be further processed for output to a display, where an operator may view a waveform representation of the time-varying signal. The sampling clock can be operated at one of several selectable rates depending on the frequency content of the input signal. The portion of the input signal that is acquired; that is, sampled and stored, is determined by appropriate triggering circuitry to enable the operator to capture and display the desired portion of the waveform.
Traditional digital oscilloscopes are typically implemented with acquisition memories sufficient to store perhaps as much as 16,000 to 50,000 signal samples per channel. Typically, an 8-bit analog-to-digital (A/D) converter is implemented, resulting in each sample consuming 1 byte of memory, although other conventional systems implement a 16-bit A/D converter. More recent oscilloscopes are often implemented with considerably larger acquisition memories, perhaps on the order of 2-32 Mbytes. Having such deep acquisition memories enables modern digital oscilloscopes to capture long time spans of a signal in a single acquisition. When the acquisition signal consists of a series of pulses, as in common in digital computer and communication systems, this means that many pulses of information are stored in the oscilloscope""s memory. For example, digitizing a 1.44 Mb/s T1 communication signal at 100 Msamples/second in a 2 Mbyte deep system can result in as many as 30,000 pulses of information being stored. Managing the display and measurement of such a large number of pulses presents a considerable challenge to the oscilloscope operator. In many cases, the operator""s goal is to identify one or more anomalous pulses from the more numerous normal pulses. Typically, the number of anomaly is unknown, so defining a trigger condition for the anomaly is not possible. This means the operator must reply on visual inspection and manually-initiated measurements performed on one pulse at a time. Due to a limited size and resolution of the oscilloscope""s display, only a small number of pulses may be accessed simultaneously at a horizontal scaling sufficient for accurate characterization. Analyzing all the pulses of a given acquisition this way requires the operator to manually advance through the data a few pulses at a time, a prohibitively time-consuming process. As a result, operators of conventional systems are limited to accessing only a small subset of the pulses, generally, in an ad hoc or unstructured manner. This reduces the likelihood that the operator of a conventional deep memory oscilloscope will successfully identify anomalous pulses efficiently.
Regardless of whether anomalous pulses are present in the acquired signal, the operator may wish to determine the statistics of certain measurements across a large number of pulses in the acquisition for the purpose of margins analysis. For example, the duty cycle of a clock waveform may need to be analyzed to insure that the minimum and maximum bounds are not exceeded. Some conventional systems include facilities for determining measurement statistics, however, in such implementations, the statistics are accumulated from measurements performed over multiple acquisitions and/or the results are computed such that a given measurement value is not readily traceable to the pulse it is associated with. Accumulating statistics over multiple acquisitions is disadvantageous because the acquisitions may relate to different operating conditions in the circuit or system being analyzed. Additionally, depending on how many pulses are measured from each acquisition, the time spacing between measured pulses may vary significantly, making statistical understanding less straightforward. When statistics are computed without traceability to individual pulses, the operator is unable to view the particular pulse associated with the given measurement result. Without a view of the pulse, the operator is at a loss to determine what caused the measurement result. In sum, in currently available signal measurement systems, it is difficult for an operator to characterize or troubleshoot a system or circuit through analysis of the large number of pulses that may be captured in a single acquisition.
What is needed, therefore, is a system and method that enables the operator to effectively manage a large number of acquired pulses to achieve a desired analytical or evaluative objective.
The present invention is directed to a pulse management system that addresses the above and/or other drawbacks of conventional systems. The pulse management system is configured to perform a plurality of pulse measurements on each of a plurality of pulses of an acquired signal and to store results of the pulse measurements in an accessible data structure. The pulse management system includes a pulse analyzer that searches the data structure for pulses of the acquired signal that satisfy operator-provided search criteria. Similarly, the pulse analyzer can sort the selected subset of pulses based on sort criteria provided, for example, by an operator. The pulse analyzer can provide the operator with a user interface environment in which the operator specifies the search and sort criteria and in which the pulse analyzer displays the selected pulses with their associated pulse measurement results. The operator can advance through the selected pulses in any manner desired to display different pulses together or separately. The pulse analyzer thereby advantageously provides an operator with the capability to gain insights into a large number of acquired pulses through the selection of individual pulses meeting desired characteristics or relative time of occurrence, through the filtering or selection of pulses meeting specified criteria, and through the arrangement of those pulses according to the same or different criteria.
A number of aspects of the invention are summarized below, along with different embodiments that may be implemented for each of the summarized aspects. It should be understood that the embodiments are not necessarily inclusive or exclusive of each other and may be combined in any manner that is non-conflicting and otherwise possible. It should also be understood that these summarized aspects of the invention are exemplary only and are considered to be non-limiting.
In one aspect of the invention, a signal measurement system is disclosed. The signal measurement system includes an acquisition memory having stored therein data samples of an acquired signal and a pulse data memory having stored therein pulse characteristics of each of a plurality of acquired signal pulses. The pulse characteristics include a plurality of pulse measurement results. The signal measurement system also includes a user interface and a pulse analyzer configured to cause, for an operator-specified pulse, display of a waveform of the specified pulse and the associated pulse measurement results. The pulse analyzer searches the pulse characteristics to select a subset of acquired signal pulses that satisfy search criteria including a logical combination of pulse characteristics. The pulse analyzer stores separately an identifier of the selected pulses. The logical combination can be represented by a Boolean expression or a natural language data entry format.
In one embodiment, the pulse manager includes a search module configured to perform the search and to generate a subset array. The subset array is a list of pulse identifiers with an associated subset index that indicates a relative time of occurrence of the selected pulses. In a further embodiment; the pulse analyzer includes a pulse locator module configured to utilize the subset array to retrieve the pulse measurements from the pulse data memory, and to retrieve from the acquisition memory the acquisition data pertaining to a specific one or more of the selected pulses in response to an operator request to display the specific pulse.
Preferably, the pulse analyzer further includes a sort module configured to sort the selected pulses in accordance with sort criteria specifying one or more pulse characteristics. The sort module generates a sort array comprising a list of the subset array indices ordered to reflect the sorted order of the selected pulses associated with the subset array indices in the search index array, and sort indices each of which is associated with one of the search index array indices. Preferably, the pulse locator module is also configured to utilize the sort array to arrange the selected pulses in accordance with a sort query specifying sort criteria. In the disclosed embodiment, the pulse analyzer is configured to provide a graphical interactive environment on the user interface to receive operator inputs to generate the search and sort queries.
The pulse analyzer further includes a time finder configured to receive as an input an operator-generated time value. The time finder repeatedly queries the pulse data memory for pulse center times until the time finder converges on a pulse having a center time that is closest to the operator-generated time value. In one embodiment, the time finder implements a binary search algorithm to search the pulse data memory.
In another aspect of the invention a method for analyzing one or more pulses of an acquired signal in a signal measurement system having a display device is disclosed. Samples of the acquired signal are stored in an acquisition memory and pulse characteristics of each of a plurality of selected acquired signal pulses are stored in a pulse data memory of the signal measurement system. The method includes the steps of: (1) receiving, through the user interface, an operator-generated search query specifying search criteria each comprising a logical combination of one or more pulse characteristics; (2) searching the pulse data memory for pulses that satisfy the search criteria; (3) generating a subset array of pulse numbers identifying the pulses that satisfy the specified search criteria; (4) receiving, through the user interface, an operator request to display a particular one of the selected pulses; (5) accessing the acquisition memory and the pulse data memory with an identifier of the particular pulse retrieved from the subset array to retrieve acquisition data of at least the particular pulse and pulse measurement results associated with the particular pulse; and (6) displaying on the display a waveform of the particular pulse(s) and the results of the pulse measurements of the particular pulse(s). Preferably, the method also includes the steps of: (7) receiving, through the user interface, operator-generated sort criteria by which the subset of pulses are arranged; (8) generating a sort array of subset array indices ordered in accordance with the arrangement of selected pulses; (9) generating a cross-reference array of the sort array indices ordered in accordance with the subset array indices; (10) displaying an indication of the subset and sort arrays; (11) receiving an operator-generated request to display a particular one of the selected pulses; and (12) displaying on the display a waveform of the particular pulse and the results of the pulse measurements of the particular pulse.
In a further aspect of the invention, a pulse analyzer is disclosed. The pulse analyzer is for use in a signal measurement system having an acquisition memory with data samples of an acquired signal stored therein, and a pulse data memory having stored therein characteristics of each measured pulse of the acquired signal. The pulse analyzer is configured to cause, for an operator-specified pulse, display of a waveform of the specified pulse and the associated pulse measurement results on a display device operatively coupled to the signal measurement system.
In one embodiment, the pulse analyzer includes a search module configured to search the pulse characteristics to select a subset of the acquired signal pulses that satisfy a search criteria that includes a logical combination of one or more pulse characteristics, and to store separately an identifier of the selected pulses, wherein the search module is further configured to generate a subset array, wherein the subset array is a list of the pulse identifiers indexed by a subset index that indicates a relative time of occurrence of the one or more selected pulses. Preferably, the pulse analyzer also includes a sort module configured to sort the selected pulses in accordance with sort criteria specifying one or more pulse characteristics, and to generate a sort array comprising a list of the subset array indices ordered to reflect the sorted order of the selected pulses, each of the subset array indices having an associated sort index. A pulse locator module is included in the pulse analyzer to utilize the subset and sort arrays to retrieve the pulse measurements from the pulse data memory and the acquisition data from the acquisition memory pertaining to a specific selected pulse in response to an operator request to display the specific pulse.
In a still further aspect of the invention, a computer software product is disclosed. The computer software product includes a medium readable by a processor, the medium having stored thereon a sequence of instructions. When executed by the processor, the instructions cause the processor to provide an interactive environment on a user interface coupled to a signal measurement system having an acquisition memory with data samples of an acquired signal stored therein and a pulse data memory having stored therein characteristics of each of a plurality of pulses of the acquired signal. In response to operator-generated inputs to the interactive environment, the processor causes the display of a waveform of an operator-specified pulse and associated pulse measurement results on the user interface.
In one embodiment, the sequence of instructions includes a first sequence of instructions that searches the pulse characteristics to select a subset of the acquired signal pulses that satisfy a search criteria that includes a logical combination of one or more pulse characteristics. The first sequence of instructions is further configured to generate a subset array that includes a list of pulse identifiers indexed by a subset index. A second sequence of instructions that sort the selected pulses in accordance with sort criteria specifying one or more pulse characteristics, and that generate a sort array comprising a list of the subset array indices ordered to reflect the sorted order of the selected pulses, each of the subset array indices having an associated sort index. A third sequence of instructions that utilizes the subset and sort arrays to retrieve the pulse measurements from the pulse data memory and the acquisition data from the acquisition memory pertaining to a specific one or more of the selected pulses in response to an operator request to display the specific pulse.